<?php

/**
 * Created by PhpStorm.
 * User: koterwong
 * Date: 2017/8/29
 * Time: 19:53
 */

namespace app\api\model;

class SmsModel extends BaseModel
{
    public function test()
    {
        exit();

        $flag = 0;
        $params = '';//要post的数据
        $verify = rand(123456, 999999);//获取随机验证码

        //以下信息自己填以下
        $mobile = '13639447983';//手机号
        $argv = array(
            'name' => '15365870092',     //必填参数。用户账号
            'pwd' => 'BC851F300C25573C7AA399B7F268',     //必填参数。（web平台：基本资料中的接口密码）
            'content' => '您的验证码是：' . $verify . '如非本人操作，请忽略本短信',   //必填参数。发送内容（1-500 个汉字）UTF-8编码
            'mobile' => $mobile,   //必填参数。 手机号码。多个以英文逗号隔开
            'stime' => '',   //可选参数。 发送时间，填写时已填写的时间发送，不填时为当前时间发送
            'sign' => '炫彩装饰',    //必填参数。 用户签名。
            'type' => 'pt',  //必填参数。 固定值 pt
            'extno' => ''    //可选参数， 扩展码，用户定义扩展码，只能为数字
        );
        //print_r($argv);exit;
        //构造要post的字符串
        //echo $argv['content'];
        foreach ($argv as $key => $value) {
            if ($flag != 0) {
                $params .= "&";
                $flag = 1;
            }
            $params .= $key . "=";
            $params .= urlencode($value);//urlencode($value);
            $flag = 1;
        }
        $url = "http://web.cr6868.com/asmx/smsservice.aspx?" . $params; //提交的url地址
        $con = substr(file_get_contents($url), 0, 1);  //获取信息发送后的状态

        if ($con == '0') {
            echo "<script>alert('发送成功!');</script>";
        } else {
            echo "<script>alert('发送失败!');history.back();</script>";
        }
    }

    public function sendCode($phone, $code)
    {
        $flag = 0;
        $params = '';//要post的数据
        $argv = array(
            'name' => '15365870092',     //必填参数。用户账号
            'pwd' => 'BC851F300C25573C7AA399B7F268',     //必填参数。（web平台：基本资料中的接口密码）
            'content' => '您的验证码是：' . $code . '如非本人操作，请忽略本短信',   //必填参数。发送内容（1-500 个汉字）UTF-8编码
            'mobile' => $phone,   //必填参数。 手机号码。多个以英文逗号隔开
            'stime' => '',   //可选参数。 发送时间，填写时已填写的时间发送，不填时为当前时间发送
            'sign' => '炫彩装饰',    //必填参数。 用户签名。
            'type' => 'pt',  //必填参数。 固定值 pt
            'extno' => ''    //可选参数， 扩展码，用户定义扩展码，只能为数字
        );

        foreach ($argv as $key => $value) {
            if ($flag != 0) {
                $params .= "&";
                $flag = 1;
            }
            $params .= $key . "=";
            $params .= urlencode($value);//urlencode($value);
            $flag = 1;
        }
        $url = "http://web.cr6868.com/asmx/smsservice.aspx?" . $params; //提交的url地址
        $con = substr(file_get_contents($url), 0, 1);  //获取信息发送后的状态
        if ($con == '0') {
            return 0;
        } else {
            return -1;
        }
    }

    /**
     * @param $type
     * @param $mobile
     * @param $code
     * @return int  -1 验证码已过期，0 验证码不正确，1验证正确
     */
    public function checkSMS($type, $mobile, $code)
    {
        $info = $this->where('type', $type)
            ->where('mobile', $mobile)
            ->where('code', $code)
            ->where('status', 0)
            ->find();
        if ($info) {
            if ($info['expire_time'] < time()) {
                return -1;
            } else {
                $this->where('id', $info['id'])->update(['status' => 1]);
                return 1;
            }
        } else {
            return 0;
        }
    }
}